package br.com.scpe.managedbean.relatorios.analitico;

import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import br.com.scpe.ejb.entity.Funcionario;
import br.com.scpe.ejb.sessionBean.FuncionarioSessionBean;
import br.com.scpe.managedbean.BaseManagedBean;
import br.com.scpe.util.SCHSconstantes;

@ViewScoped
@ManagedBean
public class ListarFuncionarioRelatorioAnaliticoManagedBean extends BaseManagedBean {
	
	public ListarFuncionarioRelatorioAnaliticoManagedBean(){
		super();
	}
	private Funcionario funcionario;
	
	private int tipoFiltro;
	
	private Long mes;
	private Long ano;
	
	private List<Funcionario> listaFuncionarios;
	
	@EJB
	FuncionarioSessionBean funcionarioSessionBean;
	
	@PostConstruct
	public void init() {
		Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		funcionario = (Funcionario) requestMap.get("funcionario");
		tipoFiltro = (Integer) requestMap.get("tipoFiltro");
		mes = (Long) requestMap.get("mes");
		ano = (Long) requestMap.get("ano");
		listaFuncionarios = listarFuncionarios();
	}
	
	public String selecionarFuncionarioRelatorioAnatalitico() {
		Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		requestMap.put("funcionario", funcionario);
		requestMap.put("ano", ano);
		requestMap.put("mes", mes);
		requestMap.put("tipoFiltro", tipoFiltro);
		
		return SCHSconstantes.PAGINA_IMPRIMIR_RELATORIO_ANALITICO;
	}
	
	public List<Funcionario> listarFuncionarios(){
		
		switch (tipoFiltro) {
		case 1:
			listaFuncionarios = funcionarioSessionBean.consultaPorNome(funcionario.getNome());
			break;
		case 2:
			listaFuncionarios = funcionarioSessionBean.consultaPorEmailLista(funcionario.getEmail());
			break;
		case 3:
			listaFuncionarios = funcionarioSessionBean.consultaPorDepartamento(funcionario.getDepartamento());
			break;
		case 4:
			listaFuncionarios = funcionarioSessionBean.consultaTodosFuncionarios();
			break;
		
		default:
			break;
		}
		return listaFuncionarios;
	}
	
	public String voltarTelaFiltroRelatorioAnalitico(){
		return SCHSconstantes.PAGINA_FILTRO_RELATORIO_ANALITICO;
	}
	public Funcionario getFuncionario() {
		return funcionario;
	}


	public int getTipoFiltro() {
		return tipoFiltro;
	}


	public Long getMes() {
		return mes;
	}


	public Long getAno() {
		return ano;
	}


	public List<Funcionario> getListaFuncionarios() {
		return listaFuncionarios;
	}


	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}


	public void setTipoFiltro(int tipoFiltro) {
		this.tipoFiltro = tipoFiltro;
	}


	public void setMes(Long mes) {
		this.mes = mes;
	}


	public void setAno(Long ano) {
		this.ano = ano;
	}


	public void setListaFuncionarios(List<Funcionario> listaFuncionarios) {
		this.listaFuncionarios = listaFuncionarios;
	}
}
